Skip to main content

Oggetto: interfaccia

Simbolo: _cds_icon_interface.png

Parola chiave: INTERFACE

Un'interfaccia è un mezzo di programmazione orientata agli oggetti. L'oggetto ITF descrive un insieme di prototipi di metodi e proprietà. In questo contesto, prototipo significa che il metodi e proprietà contengono solo dichiarazioni e nessuna attuazione.

Ciò consente di utilizzare allo stesso modo blocchi funzione diversi con proprietà comuni. Un ITF l'oggetto viene aggiunto all'applicazione o al progetto facendo clic Progetto → Aggiungi oggetto → Interfaccia

Per ulteriori informazioni, vedere: Implementa un'interfaccia

Tabella 58. Aggiunta di un'interfaccia

Eredità

Nome

Nome interfaccia

Avanzate

standard icon: Estende l'interfaccia selezionata nel campo di immissione o tramite l'Assistente di immissione _cds_icon_three_dots.png. Ciò significa che tutti i metodi dell'interfaccia che estendono la nuova interfaccia sono disponibili anche nella nuova interfaccia.

Per ulteriori informazioni, vedere: Estendi un'interfaccia



Suggerimento

L'ereditarietà multipla è supportata per le interfacce.

Puoi aggiungere il Proprietà interfaccia e Metodo di interfaccia oggetti al ITF oggetto. I metodi di interfaccia possono contenere solo le dichiarazioni delle variabili di input, output e VAR_IN_OUT, ma nessuna implementazione.

Per poter utilizzare anche un'interfaccia nel programma, deve essere presente un blocco funzione che implementa questa interfaccia.

Questo significa:

  • Il blocco funzione contiene l'interfaccia nella sua lista IMPLEMENTS nella sua parte di dichiarazione

  • Il blocco funzione contiene un'implementazione per tutti i metodi e prototipi di proprietà dell'interfaccia

Un blocco funzione può implementare una o più interfacce. È possibile utilizzare lo stesso metodo con parametri identici, ma codice di implementazione diverso in blocchi funzione diversi.

. Nota quanto segue:
  • Non è necessario definire variabili all'interno di un'interfaccia. Un'interfaccia non ha parte di implementazione e nessuna azione. Viene definita solo una raccolta di metodi, in cui è possibile definire solo le variabili di input, output e VAR_IN_OUT.

  • CODESYS tratta sempre le variabili dichiarate con il tipo di interfaccia come riferimenti.

  • Un blocco funzione che implementa un'interfaccia deve contenere codice di implementazione per i metodi dell'interfaccia. I metodi sono stati denominati esattamente come nell'interfaccia e i metodi contengono le stesse variabili di input, output e VAR_IN_OUT dell'interfaccia.

Riferimenti di interfaccia e modifiche online

Con una versione del compilatore < 3.4.1.0 può verificarsi quanto segue:

Se un blocco funzione modifica i suoi dati perché vengono aggiunte o eliminate variabili o perché cambia il tipo di variabili, allora CODESYS copia tutte le istanze del blocco funzione in una nuova posizione di memoria. In questo caso, però, un riferimento di interfaccia non fa riferimento alla nuova locazione di memoria, ma comunque a quella vecchia.

In caso di versioni del compilatore >= 3.4.1.0, CODESYS ri-indirizza automaticamente i riferimenti dell'interfaccia in modo che CODESYS fa riferimento anche all'interfaccia corretta in caso di modifica online. CODESYS richiede codice aggiuntivo e più tempo per questo, in modo che possano verificarsi problemi di jitter a seconda del numero di oggetti interessati. Perciò, CODESYS visualizza il numero di variabili e riferimenti di interfaccia interessati prima dell'esecuzione della modifica online e quindi è possibile decidere se eseguire o annullare la modifica online.

Esempio 516. Esempio

Definizione di un'interfaccia e suo utilizzo in un blocco funzione

Hai inserito l'interfaccia ITF sotto l'applicazione. L'interfaccia contiene i metodi Metodo 1 e Metodo 2. ITF, Metodo 1 e Metodo 2 non contengono codice di implementazione. Si inseriscono le dichiarazioni delle variabili richieste solo nella parte di dichiarazione dei metodi.

Se successivamente si inserisce un blocco funzione nell'albero dei dispositivi che implementa l'interfaccia ITF, CODESYS inserisce automaticamente anche i metodi Metodo 1 e Metodo 2 sotto il blocco funzione. Qui puoi implementare il codice specifico del blocco funzione nei metodi.

_cds_img_itf_method.png